/*
 * Classe tem objetivo de criar objetos do tipo Mapa, tendo como função mostrar
 * a os lugares de certa região, e mostrar onde o usuario ja passou.
 */
package rpg.recurso;

import javax.swing.JOptionPane;
import rpg.cenario.Lugar;
import rpg.recurso.Utilitario;

/**
 * @author Douglas
 * @since 26/01/13
 * @version 0.5
 */
public class Mapa extends Utilitario {

    private String mapa;

    /**
     * Método construtor
     * @param nome
     * @param quantidade
     * @param funcao 
     */
    public Mapa(String nome, int quantidade, String funcao) {
        super(nome, funcao, quantidade);
        mapa = "---------------------------------------------------------------------------------------------\n"
                + "|  BURACO NEGRO     |              BURACO NEGRO  |                                       |\n"
                + "|    ------------------------------------------------------------------------------      |\n"       
                + "|    |          ||                    ||                       ||                  |  B  |\n"
                + "|    |      ------------         -----------------          -----------------      |  U  |\n"
                + "|    |      |          |         |                |         |               |      |  R  |\n"
                + "|    | -----| Deserto  |-------- | Passagem Norte |---------|    Floresta   |----- |  A  |\n"
                + "|    |      |__________|         |______________  |         |_______________|      |  C  |\n"
                + "|    |            ||                    ||                       ||                |  O  |\n"
                + "|    |            ||                    ||                       ||                |     |\n"
                + "|    |      ------------         -------------          ---------------            |  N  |\n"
                + "|    |      |          |         |           |         |               |           |  E  |\n"
                + "|    |------| Campo    |-------- |   Charco  |---------|    Castelo    |--------   |  G  |\n"
                + "|    |      |__________|         |___________|         |_______________|           |  R  |\n"
                + "|    |            ||                    ||                       ||                |  O  |\n"
                + "|    |            ||                    ||                       ||                |     |\n"
                + "|    |       ----------           ---------------           -----------------|     |     |\n"
                + "|    |      |           |         |               |         |                |     |     |\n"
                + "|    |------| Rio Norte |-------- | Passagem Sul  |---------| Caverna Escura |---- |     |\n"
                + "|    |      |__________ |         |_______________|         |________________|     |     |\n"
                + "|    |            ||                    ||                       ||                |     |\n"
                + "|    |-----------------------------------------------------------------------------|     |\n"
                + "|                         |           BURACO NEGRO   |                                   |\n"
                + "|-------------------------------------------------------------------------------------\n";
    }

    /**
     * Metodo retorna o mapa inicializado ao criar o objeto do tipo mapa
     * @return mapa
     */
    public String getMapa() {
        return mapa;
    }
    
    /**
     * Recebe um lugar e marca este mesmo lugar no mapa altomaticamente quando usado.
     * @param lugar 
     */
    public void alteraLocalizacao(Lugar lugar){
        mapa = getMapa().replaceAll(" "+lugar.getNome()+" ","*"+lugar.getNome()+"*");
    }
}
